#-*-Makefile-*- vim:syntax=make

DELUGE_DIR ?= $(TINYOS_OS_DIR)/lib/net/Deluge
DELUGE_EXTRA ?= $(DELUGE_DIR)/extra
TOSBOOT_DIR ?= $(TINYOS_OS_DIR)/lib/tosboot/build

ifeq ($(BOOTLOADER),tosboot)

  CFLAGS += -DDELUGE
  CFLAGS += -I$(TINYOS_OS_DIR)/lib/net -I$(TINYOS_OS_DIR)/lib/net/drip -I$(DELUGE_DIR) -I$(DELUGE_DIR)/FlashVolumeManager -I$(DELUGE_DIR)/BlockStorageManager

  ifneq ($(filter telosb tmote epic,$(TARGETS)),)
    CFLAGS += -I$(DELUGE_EXTRA) -I$(DELUGE_EXTRA)/msp430 -I$(DELUGE_EXTRA)/telos
    ifeq ($(filter docs,$(GOALS)),)
      CFLAGS += -Wl,--section-start=.text=0x4a00,--defsym=_reset_vector__=0x4000
      # Pull back in mspgcc CRT code discarded by the redefinition of
      # _reset_vector__.
      CFLAGS += -Wl,--undefined=__init_stack
      CFLAGS += -Wl,--undefined=__low_level_init
      CFLAGS += -Wl,--undefined=__do_copy_data
      CFLAGS += -Wl,--undefined=__do_clear_bss
      CFLAGS += -Wl,--undefined=__stop_progExec__
      CFLAGS += -Wl,--undefined=_endless_loop__
      ifeq ("$(shell expr `msp430-gcc -dumpversion` \>= '4.6.3')","1")
        CFLAGS += -Wl,--undefined=__watchdog_support
      endif
    endif
    ifeq ($(TARGETS),telosb)
      CFLAGS += -I$(DELUGE_EXTRA)/telosb
      BOOTLOADER_IMG ?= $(TOSBOOT_DIR)/telosb/main.ihex
    endif
    ifeq ($(TARGETS),epic)
      CFLAGS += -I$(DELUGE_EXTRA)/epic
      BOOTLOADER_IMG ?= $(TOSBOOT_DIR)/epic/main.ihex
    endif
    ifeq ($(shell [ -f /bin/cygwin1.dll ] && echo cygwin),cygwin)
      BOOTLOADER_IMG := $(shell cygpath -m $(BOOTLOADER_IMG))
    endif
  endif

  ifeq ($(TARGETS),micaz)
    CFLAGS += -I$(DELUGE_EXTRA) -I$(DELUGE_EXTRA)/avr -I$(DELUGE_EXTRA)/micaz -I$(DELUGE_EXTRA)/mica2
    BOOTLOADER_IMG ?= $(TOSBOOT_DIR)/micaz/main.ihex
    AVR_FUSE_H ?= 0xda
  endif

  ifeq ($(TARGETS),mulle)
    CFLAGS += -I$(DELUGE_EXTRA) -I$(DELUGE_EXTRA)/mulle -I$(DELUGE_EXTRA)/m16c60 -I$(DELUGE_EXTRA)/m16c60/62p
    BOOTLOADER_IMG ?= $(TOSBOOT_DIR)/mulle/main.srec
  endif

  ifeq ($(TARGETS),iris)
    CFLAGS += -I$(DELUGE_EXTRA)/iris -I$(DELUGE_EXTRA)/micaz -I$(DELUGE_EXTRA)/mica2 -I$(DELUGE_EXTRA)/avr -I$(DELUGE_EXTRA)
    BOOTLOADER_IMG ?= $(TOSBOOT_DIR)/iris/main.ihex
    AVR_FUSE_H ?= 0xda
  endif

   ifeq ($(TARGETS),tinynode)
    CFLAGS += -I$(DELUGE_EXTRA)/tinynode
    CFLAGS += -I$(DELUGE_EXTRA) -I$(DELUGE_EXTRA)/msp430 -I$(DELUGE_EXTRA)/msp430f1611
    ifeq ($(filter docs,$(GOALS)),)
      CFLAGS += -Wl,--section-start=.text=0x4a00,--defsym=_reset_vector__=0x4000
    endif
    BOOTLOADER_IMG ?= $(TOSBOOT_DIR)/tinynode/main.ihex
  endif

endif
